home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / IDimager Personal 4.2.0.3 / setup_IDimager_Personal_V4.exe / {app} / Scripts / Meta Data Scripts / Delete iView Contacts.psc < prev    next >
Text File  |  2007-02-20  |  2KB  |  87 lines

  1. {
  2.   Description: This script will DELETE the existing contacts/people array as written by iView to
  3.                XMP and IPTC keywords.
  4.   Author: HB van Zwietering
  5.   Initial date: 2007-02-20
  6. }
  7.  
  8. var
  9.   ATif: TTif; 
  10.   AXmp: TXMP; 
  11.   AItem: TImageItem; 
  12.   i: Integer;                      
  13.   ACatItem: TCatalogItem;
  14.   ATag: TTifTag;
  15.   AParam: TMacroParam;
  16. begin
  17.   if Selected.Count = 0 then 
  18.   begin 
  19.     Say ('No selection made.');
  20.     exit; 
  21.   end;
  22.  
  23.   if not Ask ('This script will DELETE Contacts/People entries as written with iView to XMP and IPTC keywords.' + CrLf2 + 'Are you sure you want to continue?') then
  24.     exit;
  25.  
  26.   Progress.Cancel := False; 
  27.   Progress.ProgressBar := True; 
  28.   Progress.Max := Selected.Count; 
  29.   Progress.Show; 
  30.  
  31.   AXmp := TXmp.Create (True); 
  32.   ATif := TTif.Create (nil);
  33.   ACatItem := TCatalogItem.Create (nil);
  34.   try
  35.     //ATif.UseCache := False;
  36.     for i := 0 to Selected.Count - 1 do
  37.     begin
  38.       Progress.ProgressText := Selected.Items[i].FileName;
  39.       Progress.Pos := i + 1;
  40.       if Progress.Cancel then
  41.         break;
  42.  
  43.       ATif.Reset;
  44.       AXmp.Reset;
  45.  
  46.       ATif.FileName := Selected.Items[i].ExifFileName; 
  47.       ATif.Load (True, False); 
  48.  
  49.       // now update the XMP 
  50.       if not Catalog.FindImageCombined (Selected.Items[i], ACatItem, False, phtNone) then                                                    
  51.         if not Catalog.AddFile (Selected.Items[i], AcatItem, False) then 
  52.           Continue; 
  53.  
  54.       Catalog.LoadXMPForItem (ACatItem, AXmp, Options.CachedXMP); 
  55.       AXmp.InitializeFromTif (ATif, True, True, True);
  56.  
  57.       //Say (ATif.TagValueByName ('Contacts', [itIPTC]));
  58.  
  59.       ATag := ATif.FindTag (118, [itIPTC]);
  60.       while ATag <> nil do
  61.       begin
  62.         ATag.Free;
  63.  
  64.         ATag := ATif.FindTag (118, [itIPTC]);
  65.       end;
  66.  
  67.       AParam := AXmp.FindDesignProperty ('http://ns.iview-multimedia.com/mediapro/1.0/', 'mediapro:People');
  68.       if AParam <> nil then
  69.         AParam.Free;
  70.  
  71.       ATif.UpdateTags;
  72.       Catalog.SaveXMPForItem (ACatItem, AXmp, Options.CachedXMP);
  73.     end;
  74.   finally 
  75.     AXmp.Free; 
  76.     ACatItem.Free; 
  77.   end; 
  78.  
  79.   //ExifCache.Clear;
  80.  
  81.   Progress.Hide;
  82.  
  83.   if Progress.Cancel then
  84.     Say ('Cancelled');
  85. end;
  86.  
  87.